package com.nineclock.system.service;


import com.nineclock.system.dto.SysAllowedJoinCompanyUserDTO;
import com.nineclock.system.dto.SysApplyJoinCompanyUserDTO;
import com.nineclock.system.dto.SysCompanyDTO;
import com.nineclock.system.dto.SysCompanyUserDTO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface SysCompanyService {

    /**
     * 企业管理: 根据系统用户ID查询企业列表
     */
    List<SysCompanyDTO> queryUserJoinCompany(Long userId);

    /**
     * 企业管理: 查询当前企业信息
     */
    SysCompanyDTO queryCompanyInfo();

    /**
     * 企业管理: 上传图片
     */
    String uploadOSS(MultipartFile file) throws Exception;

    /**
     * 企业管理: 更新当前企业的基本信息
     */
    void updateCompanyInfo(SysCompanyDTO companyDTO);

    /**
     * 企业管理: 获取企业当前主管理员
     */
    SysCompanyUserDTO getCurrentAdmin();

    /**
     * 企业管理: 更改系统管理员
     * @param code
     * @param userId
     */
    void changeAdmin(String code, Long userId);

    /**
     * 根据关键字名称查询企业
     * @param keyword
     * @return
     */
    List<SysCompanyDTO> queryCompanyByName(String keyword);

    /**
     * 加入企业申请
     * @param applyJoinCompanyUserDTO
     */
    void applyJoinCompany(SysApplyJoinCompanyUserDTO applyJoinCompanyUserDTO);

    /**
     * 加入企业审核
     * @param allowedJoinCompanyUserDTO
     */
    void allowedJoinCompany(SysAllowedJoinCompanyUserDTO allowedJoinCompanyUserDTO);
}
